package org.feng.demofx.sys;

import javafx.scene.Node;
import javafx.scene.layout.Pane;
import org.feng.demofx.util.StringUtil;

/**
 * 页面节点渲染接口
 *
 * @author feng
 */
public interface PageNodeRender {
    /**
     * 渲染面板
     *
     * @param pane 面板
     * @return 节点
     */
    Node render(Pane pane);

    /**
     * 获取页面key
     *
     * @return 页面key，返回空字符串时表示不使用，会自动获取注解{@link PageNodeKey}中的pageKey
     */
    default String getPageKey() {
        return "";
    }

    /**
     * 获取页面名
     *
     * @return 页面名，返回空字符串时表示不使用
     */
    default String getPageName() {
        if(StringUtil.isEmpty(getPageKey())) {
            throw new IllegalArgumentException("页面Key不能为空");
        }
        return "";
    }

    /**
     * 排序
     *
     * @return 默认为0，升序排序
     */
    default int order() {
        return 0;
    }
}
